
#include "memento.h"
Memento::Memento(Originator::State state, int lifeValue, int attackValue, int defenceValue) : m_state(state), m_lifeValue(lifeValue), m_attackValue(attackValue), m_defenceValue(defenceValue)
{
}

bool CareTaker::isEmpty()
{
    return m_mementos.empty();
}

Memento::ptr CareTaker::preMemento()
{
    if (curIndex < 0)
    {
        std::cout << "当前记录为空" << std::endl;
        return nullptr;
    }
    // curIndex -= 1;
    return m_mementos[curIndex --];
}

Memento::ptr CareTaker::nextMemento()
{
    //说明没有下一条记录
    if (curIndex == (int)(m_mementos.size() - 1))
    {
        std::cout << "没有下一条记录了" << std::endl;
        return nullptr;
    }
    return m_mementos[++curIndex];
}

void CareTaker::addMementor(Memento::ptr memento)
{
    //保存记录需要将后面的记录删除，在新的vector上复写
    m_mementos.resize(curIndex + 1);
    m_mementos.push_back(memento);
    curIndex += 1;
}